Ethereum is a public blockchain-based distributed computing platform, featuring smart contract functionality. In an Ethereum blockchain, users have public/private key pairs and are identified by an account number (typically calculated as a hash of the public key of the user). Executable code is stored on the blockchain. Each grouping of executable code is often referred to as a contract or a smart contract. The code of a contract and the current and previous values of data held by a contract are public, and the contract code is immutable. Function calls on a contract are referred to as transactions. Transactions are signed by the private key of a user and include a signature, which is used to confirm that a given transaction originated from a given user.
There have been a number of security issues with contracts, in which contract bugs have led to unexpected issues. Thus, security of the data in a contract has to be carefully reviewed. A need therefore exists for improved techniques for storing encrypted data on a blockchain. A further need exists for techniques for threshold-based blockchain encryption.